/**
 * @file STL_Path h
 * @author Derek Liu (yjkhtddx@sina.com)
 * @brief 
 * @version 0.1
 * @date 2020-09-21
 * 
 * @copyright Copyright Sci-Tech Laboratories (c) 2020
 * 
 */

#ifndef _STL_PATH_H_
#define _STL_PATH_H_

#include <string>
#include <vector>

namespace STL
{
    class STL_Path
    {
    public:
        // static std::string basename(std::string path, std::string ext = "");
        // static std::string delimiter;
        // static std::string dirname(std::string path);
        static std::string extname(std::string path);
        // static std::string format(pathObject);
        static bool isAbsolute(std::string path);
        static std::string join(std::vector<std::string> paths);
        static std::string join(std::string path1, std::string path2);
        // static std::string normalize(path);
        // static std::string parse(path);
        // static std::string posix;
        // static std::string relative(from, to);
        // static std::string resolve([... paths]);
        // static std::string sep;
        // static std::string toNamespacedPath(path);
        // static std::string win32;
    private:
        static std::vector<std::string> split(std::string str, std::string pattern);
    };
} // namespace STL

#endif //_STL_PATH_H_